<?xml version="1.0" encoding="UTF-8"?>
<ticket>
  <assigned-user-id type="integer">11063</assigned-user-id>
  <attachments-count type="integer">0</attachments-count>
  <closed type="boolean">true</closed>
  <created-at type="datetime">2009-05-22T12:04:30-04:00</created-at>
  <creator-id type="integer">11063</creator-id>
  <milestone-due-on type="datetime">2009-05-23T00:00:00-04:00</milestone-due-on>
  <milestone-id type="integer">40574</milestone-id>
  <number type="integer">9</number>
  <permalink>problem-when-exdates-have-timezones</permalink>
  <priority type="integer">1</priority>
  <project-id type="integer">30941</project-id>
  <raw-data type="binary" nil="true" encoding="base64"></raw-data>
  <state>resolved</state>
  <tag nil="true"></tag>
  <title>Problem when EXDATEs have timezones</title>
  <updated-at type="datetime">2009-05-23T18:28:06-04:00</updated-at>
  <user-id type="integer">11063</user-id>
  <user-name>Rick DeNatale</user-name>
  <creator-name>Rick DeNatale</creator-name>
  <assigned-user-name>Rick DeNatale</assigned-user-name>
  <url>http://rick_denatale.lighthouseapp.com/projects/30941/tickets/9</url>
  <milestone-title>0.0.11</milestone-title>
  <original-body>It appears that having timezones on EXDATEs is preventing them from excluding occurrences.

The Icalendar data in the spec below contains an exdate for each normal occurrence of the event, so it should have no occurrences. I verified this interpretation by importing it into ical.app.

The data came from a calendar file which Paul sent which was causing a missing_method &lt;=&gt; on Hash.  I fixed that problem, but in the process discovered this anomaly.

@@@ ruby
  context &quot;EXDATES with timezones bug&quot; do
    before(:each) do
      cals = RiCal.parse_string rectify_ical &lt;&lt;-ENDCAL
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Apple Inc.//iCal 3.0//EN
      CALSCALE:GREGORIAN
      X-WR-CALNAME:Utah Cycling
      X-WR-RELCALID:BF579011-36BF-49C6-8C7D-E96F03DE8055
      VERSION:2.0
      X-WR-TIMEZONE:US/Mountain
      BEGIN:VTIMEZONE
      TZID:US/Mountain
      BEGIN:DAYLIGHT
      TZOFFSETFROM:-0700
      TZOFFSETTO:-0600
      DTSTART:20070311T020000
      RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
      TZNAME:MDT
      END:DAYLIGHT
      BEGIN:STANDARD
      TZOFFSETFROM:-0600
      TZOFFSETTO:-0700
      DTSTART:20071104T020000
      RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
      TZNAME:MST
      END:STANDARD
      END:VTIMEZONE
      BEGIN:VEVENT
      SEQUENCE:11
      TRANSP:OPAQUE
      UID:15208112-E0FA-4A7C-954C-CFDF19D1B0E7
      DTSTART;TZID=US/Mountain:20090114T163000
      DTSTAMP:20090107T024340Z
      SUMMARY:Wild Rose XC/Skate Training Series
      EXDATE;TZID=US/Mountain:20090114T163000
      EXDATE;TZID=US/Mountain:20090128T163000
      EXDATE;TZID=US/Mountain:20090121T163000
      EXDATE;TZID=US/Mountain:20090211T163000
      EXDATE;TZID=US/Mountain:20090204T163000
      EXDATE;TZID=US/Mountain:20090218T163000
      CREATED:20090107T024012Z
      DTEND;TZID=US/Mountain:20090114T180000
      LOCATION:Mountain Dell Golf Course
      RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20090219T065959Z
      END:VEVENT
      END:VCALENDAR
      ENDCAL
      @event = cals.first.events.first
    end
    
    it &quot;should have no occurrences&quot; do
      rputs @event.exdate_property
      @event.occurrences.length.should == 0
    end
  end
@@@

The initial assumption is that the time zones are causing the problem, I am currently investigating.</original-body>
  <latest-body>It appears that having timezones on EXDATEs is preventing them from excluding occurrences.

The Icalendar data in the spec below contains an exdate for each normal occurrence of the event, so it should have no occurrences. I verified this interpretation by importing it into ical.app.

The data came from a calendar file which Paul sent which was causing a missing_method &lt;=&gt; on Hash.  I fixed that problem, but in the process discovered this anomaly.

@@@ ruby
  context &quot;EXDATES with timezones bug&quot; do
    before(:each) do
      cals = RiCal.parse_string rectify_ical &lt;&lt;-ENDCAL
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Apple Inc.//iCal 3.0//EN
      CALSCALE:GREGORIAN
      X-WR-CALNAME:Utah Cycling
      X-WR-RELCALID:BF579011-36BF-49C6-8C7D-E96F03DE8055
      VERSION:2.0
      X-WR-TIMEZONE:US/Mountain
      BEGIN:VTIMEZONE
      TZID:US/Mountain
      BEGIN:DAYLIGHT
      TZOFFSETFROM:-0700
      TZOFFSETTO:-0600
      DTSTART:20070311T020000
      RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
      TZNAME:MDT
      END:DAYLIGHT
      BEGIN:STANDARD
      TZOFFSETFROM:-0600
      TZOFFSETTO:-0700
      DTSTART:20071104T020000
      RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
      TZNAME:MST
      END:STANDARD
      END:VTIMEZONE
      BEGIN:VEVENT
      SEQUENCE:11
      TRANSP:OPAQUE
      UID:15208112-E0FA-4A7C-954C-CFDF19D1B0E7
      DTSTART;TZID=US/Mountain:20090114T163000
      DTSTAMP:20090107T024340Z
      SUMMARY:Wild Rose XC/Skate Training Series
      EXDATE;TZID=US/Mountain:20090114T163000
      EXDATE;TZID=US/Mountain:20090128T163000
      EXDATE;TZID=US/Mountain:20090121T163000
      EXDATE;TZID=US/Mountain:20090211T163000
      EXDATE;TZID=US/Mountain:20090204T163000
      EXDATE;TZID=US/Mountain:20090218T163000
      CREATED:20090107T024012Z
      DTEND;TZID=US/Mountain:20090114T180000
      LOCATION:Mountain Dell Golf Course
      RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20090219T065959Z
      END:VEVENT
      END:VCALENDAR
      ENDCAL
      @event = cals.first.events.first
    end
    
    it &quot;should have no occurrences&quot; do
      rputs @event.exdate_property
      @event.occurrences.length.should == 0
    end
  end
@@@

The initial assumption is that the time zones are causing the problem, I am currently investigating.</latest-body>
  <original-body-html>&lt;div&gt;&lt;p&gt;It appears that having timezones on EXDATEs is preventing them
from excluding occurrences.&lt;/p&gt;
&lt;p&gt;The Icalendar data in the spec below contains an exdate for each
normal occurrence of the event, so it should have no occurrences. I
verified this interpretation by importing it into ical.app.&lt;/p&gt;
&lt;p&gt;The data came from a calendar file which Paul sent which was
causing a missing_method &amp;lt;=&amp;gt; on Hash. I fixed that problem,
but in the process discovered this anomaly.&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;
  context &amp;quot;EXDATES with timezones bug&amp;quot; do
    before(:each) do
      cals = RiCal.parse_string rectify_ical &amp;lt;&amp;lt;-ENDCAL
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Apple Inc.//iCal 3.0//EN
      CALSCALE:GREGORIAN
      X-WR-CALNAME:Utah Cycling
      X-WR-RELCALID:BF579011-36BF-49C6-8C7D-E96F03DE8055
      VERSION:2.0
      X-WR-TIMEZONE:US/Mountain
      BEGIN:VTIMEZONE
      TZID:US/Mountain
      BEGIN:DAYLIGHT
      TZOFFSETFROM:-0700
      TZOFFSETTO:-0600
      DTSTART:20070311T020000
      RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
      TZNAME:MDT
      END:DAYLIGHT
      BEGIN:STANDARD
      TZOFFSETFROM:-0600
      TZOFFSETTO:-0700
      DTSTART:20071104T020000
      RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
      TZNAME:MST
      END:STANDARD
      END:VTIMEZONE
      BEGIN:VEVENT
      SEQUENCE:11
      TRANSP:OPAQUE
      UID:15208112-E0FA-4A7C-954C-CFDF19D1B0E7
      DTSTART;TZID=US/Mountain:20090114T163000
      DTSTAMP:20090107T024340Z
      SUMMARY:Wild Rose XC/Skate Training Series
      EXDATE;TZID=US/Mountain:20090114T163000
      EXDATE;TZID=US/Mountain:20090128T163000
      EXDATE;TZID=US/Mountain:20090121T163000
      EXDATE;TZID=US/Mountain:20090211T163000
      EXDATE;TZID=US/Mountain:20090204T163000
      EXDATE;TZID=US/Mountain:20090218T163000
      CREATED:20090107T024012Z
      DTEND;TZID=US/Mountain:20090114T180000
      LOCATION:Mountain Dell Golf Course
      RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20090219T065959Z
      END:VEVENT
      END:VCALENDAR
      ENDCAL
      @event = cals.first.events.first
    end
    
    it &amp;quot;should have no occurrences&amp;quot; do
      rputs @event.exdate_property
      @event.occurrences.length.should == 0
    end
  end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The initial assumption is that the time zones are causing the
problem, I am currently investigating.&lt;/p&gt;&lt;/div&gt;</original-body-html>
  <versions type="array">
    <version type="Ticket::Version">
      <assigned-user-id type="integer">11063</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>It appears that having timezones on EXDATEs is preventing them from excluding occurrences.

The Icalendar data in the spec below contains an exdate for each normal occurrence of the event, so it should have no occurrences. I verified this interpretation by importing it into ical.app.

The data came from a calendar file which Paul sent which was causing a missing_method &lt;=&gt; on Hash.  I fixed that problem, but in the process discovered this anomaly.

@@@ ruby
  context &quot;EXDATES with timezones bug&quot; do
    before(:each) do
      cals = RiCal.parse_string rectify_ical &lt;&lt;-ENDCAL
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Apple Inc.//iCal 3.0//EN
      CALSCALE:GREGORIAN
      X-WR-CALNAME:Utah Cycling
      X-WR-RELCALID:BF579011-36BF-49C6-8C7D-E96F03DE8055
      VERSION:2.0
      X-WR-TIMEZONE:US/Mountain
      BEGIN:VTIMEZONE
      TZID:US/Mountain
      BEGIN:DAYLIGHT
      TZOFFSETFROM:-0700
      TZOFFSETTO:-0600
      DTSTART:20070311T020000
      RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
      TZNAME:MDT
      END:DAYLIGHT
      BEGIN:STANDARD
      TZOFFSETFROM:-0600
      TZOFFSETTO:-0700
      DTSTART:20071104T020000
      RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
      TZNAME:MST
      END:STANDARD
      END:VTIMEZONE
      BEGIN:VEVENT
      SEQUENCE:11
      TRANSP:OPAQUE
      UID:15208112-E0FA-4A7C-954C-CFDF19D1B0E7
      DTSTART;TZID=US/Mountain:20090114T163000
      DTSTAMP:20090107T024340Z
      SUMMARY:Wild Rose XC/Skate Training Series
      EXDATE;TZID=US/Mountain:20090114T163000
      EXDATE;TZID=US/Mountain:20090128T163000
      EXDATE;TZID=US/Mountain:20090121T163000
      EXDATE;TZID=US/Mountain:20090211T163000
      EXDATE;TZID=US/Mountain:20090204T163000
      EXDATE;TZID=US/Mountain:20090218T163000
      CREATED:20090107T024012Z
      DTEND;TZID=US/Mountain:20090114T180000
      LOCATION:Mountain Dell Golf Course
      RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20090219T065959Z
      END:VEVENT
      END:VCALENDAR
      ENDCAL
      @event = cals.first.events.first
    end
    
    it &quot;should have no occurrences&quot; do
      rputs @event.exdate_property
      @event.occurrences.length.should == 0
    end
  end
@@@

The initial assumption is that the time zones are causing the problem, I am currently investigating.</body>
      <body-html>&lt;div&gt;&lt;p&gt;It appears that having timezones on EXDATEs is preventing them
from excluding occurrences.&lt;/p&gt;
&lt;p&gt;The Icalendar data in the spec below contains an exdate for each
normal occurrence of the event, so it should have no occurrences. I
verified this interpretation by importing it into ical.app.&lt;/p&gt;
&lt;p&gt;The data came from a calendar file which Paul sent which was
causing a missing_method &amp;lt;=&amp;gt; on Hash. I fixed that problem,
but in the process discovered this anomaly.&lt;/p&gt;
&lt;pre&gt;
&lt;code class=&quot;ruby&quot;&gt;  context &quot;EXDATES with timezones bug&quot; do
    before(:each) do
      cals = RiCal.parse_string rectify_ical &amp;lt;&amp;lt;-ENDCAL
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      PRODID:-//Apple Inc.//iCal 3.0//EN
      CALSCALE:GREGORIAN
      X-WR-CALNAME:Utah Cycling
      X-WR-RELCALID:BF579011-36BF-49C6-8C7D-E96F03DE8055
      VERSION:2.0
      X-WR-TIMEZONE:US/Mountain
      BEGIN:VTIMEZONE
      TZID:US/Mountain
      BEGIN:DAYLIGHT
      TZOFFSETFROM:-0700
      TZOFFSETTO:-0600
      DTSTART:20070311T020000
      RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
      TZNAME:MDT
      END:DAYLIGHT
      BEGIN:STANDARD
      TZOFFSETFROM:-0600
      TZOFFSETTO:-0700
      DTSTART:20071104T020000
      RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
      TZNAME:MST
      END:STANDARD
      END:VTIMEZONE
      BEGIN:VEVENT
      SEQUENCE:11
      TRANSP:OPAQUE
      UID:15208112-E0FA-4A7C-954C-CFDF19D1B0E7
      DTSTART;TZID=US/Mountain:20090114T163000
      DTSTAMP:20090107T024340Z
      SUMMARY:Wild Rose XC/Skate Training Series
      EXDATE;TZID=US/Mountain:20090114T163000
      EXDATE;TZID=US/Mountain:20090128T163000
      EXDATE;TZID=US/Mountain:20090121T163000
      EXDATE;TZID=US/Mountain:20090211T163000
      EXDATE;TZID=US/Mountain:20090204T163000
      EXDATE;TZID=US/Mountain:20090218T163000
      CREATED:20090107T024012Z
      DTEND;TZID=US/Mountain:20090114T180000
      LOCATION:Mountain Dell Golf Course
      RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20090219T065959Z
      END:VEVENT
      END:VCALENDAR
      ENDCAL
      @event = cals.first.events.first
    end
    
    it &quot;should have no occurrences&quot; do
      rputs @event.exdate_property
      @event.occurrences.length.should == 0
    end
  end&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;The initial assumption is that the time zones are causing the
problem, I am currently investigating.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2009-05-22T12:04:30-04:00</created-at>
      <creator-id type="integer">11063</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">9</number>
      <permalink>problem-when-exdates-have-timezones</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">30941</project-id>
      <state>new</state>
      <tag nil="true"></tag>
      <title>Problem when EXDATEs have timezones</title>
      <updated-at type="datetime">2009-05-22T12:04:32-04:00</updated-at>
      <user-id type="integer">11063</user-id>
      <user-name>Rick DeNatale</user-name>
      <creator-name>Rick DeNatale</creator-name>
      <assigned-user-name>Rick DeNatale</assigned-user-name>
      <url>http://rick_denatale.lighthouseapp.com/projects/30941/tickets/9</url>
      <milestone-title nil="true"></milestone-title>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">11063</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body></body>
      <body-html></body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2009-05-23T18:28:06-04:00</created-at>
      <creator-id type="integer">11063</creator-id>
      <diffable-attributes type="yaml">--- 
:state: new
:milestone: 
</diffable-attributes>
      <milestone-id type="integer">40574</milestone-id>
      <number type="integer">9</number>
      <permalink>problem-when-exdates-have-timezones</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">30941</project-id>
      <state>resolved</state>
      <tag nil="true"></tag>
      <title>Problem when EXDATEs have timezones</title>
      <updated-at type="datetime">2009-05-23T18:28:06-04:00</updated-at>
      <user-id type="integer">11063</user-id>
      <user-name>Rick DeNatale</user-name>
      <creator-name>Rick DeNatale</creator-name>
      <assigned-user-name>Rick DeNatale</assigned-user-name>
      <url>http://rick_denatale.lighthouseapp.com/projects/30941/tickets/9</url>
      <milestone-title>0.0.11</milestone-title>
    </version>
  </versions>
</ticket>
